package com.bjpowernode.javase.exception;
/*
    1、什么是异常，异常机制有什么用？
        程序执行错误，提供异常信息供程序员修改，让程序更加健壮(robust)，JVM负责打印
    2、java语言中异常是以什么类型存在的呢？
        * 异常在java中以类的形式存在，每一个异常类都可以创建异常对象
        * 类：模板
          对象：实际存在的个体
    3、实际上JVM发成程序错误时，会自动new异常对象，并将异常对象抛出，打印信息至控制台
    4、编译时异常和运行时异常？都是发生在运行阶段，编译时异常得名是因为编译时异常必须在编写阶段进行预处理，如果不处理编译器才报错。
        编译时异常：发生概率较高，需要在运行之前对其预处理
        运行时异常：发生概率较低


 */
public class ExceptionTest01 {
    public static void main(String[] args) {
        NumberFormatException nfe = new NumberFormatException("数字格式化异常");
        System.out.println(nfe);

        /*
        程序执行到这里发生了ArithmeticException异常，底层new出了一个ArithmeticException异常对象，然后抛出了，由于是main方法调用100/0，所以这个
        异常ArithmeticException抛给了main方法，mian方法没有处理，将这个异常自动抛给了JVM。JVM最终终止程序的运行。

        ArithmeticException继承RuntimeException，属于运行时异常，在编写阶段不需要对这种异常进行预先的处理。
         */
        //System.out.println(100 / 0);

        System.out.println("HelloWorld");
    }
}
